package com.zksk.admin.controller.productEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zksk.admin.service.productEnum.PlatformProductEnumService;
import com.zksk.common.core.domain.R;
import com.zksk.common.core.utils.StringUtils;
import com.zksk.common.core.web.controller.BaseController;
import com.zksk.mbg.admin.domain.ProductEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import lombok.extern.slf4j.Slf4j;


@Slf4j
@SuppressWarnings("all")
@RestController
@RequestMapping("/product")
@Api(value = "PlatformProductEnumController", tags = "产品枚举")

public class PlatformProductEnumController extends BaseController {

    @Autowired
    private PlatformProductEnumService platformProductEnumService;



    /**
     * 分页查询产品列表
     * @param:  * @param page
     * @param pageSize
     * @param platformProductEnum
     * @return: R<Page>
     * @author: hyz
     * @date: 2022/12/2
     */
    @GetMapping("/proList")
    @ResponseBody
    @ApiOperation(value = "获取产品枚举列表")
    public R<Page> list(ProductEnum productEnum,
                        @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
                        @RequestParam(value = "currentPage", defaultValue = "1") Integer currentPage){
        log.info("page:{} pageSize:{}",currentPage,pageSize);
        //构建分页
        Page<ProductEnum> pageInfo = new Page<>(currentPage,pageSize);
        //构建条件
        LambdaQueryWrapper<ProductEnum> wrapper = new LambdaQueryWrapper<ProductEnum>()
                .like(StringUtils.isNotBlank(productEnum.getName()), ProductEnum::getName, productEnum.getName())
      //          .eq(StringUtils.isNotBlank(productEnum.getDelFlag())&&productEnum.getDelFlag().equals("1"), ProductEnum::getDelFlag, productEnum.getDelFlag())
                .orderByAsc(ProductEnum::getCreateTime);

        Page<ProductEnum> page = platformProductEnumService.page(pageInfo, wrapper);
        return R.ok(page);
    }

    /**
     * 方法描述
     * @param:  * @param roductEnum
     * @return: R<String>
     * @author: hyz
     * @date: 2022/12/8
     */
    @ResponseBody
    @PostMapping("/addPro")
    @ApiOperation(value = "添加产品枚举列表")
    public R<String> addProduct(ProductEnum roductEnum){
        ProductEnum pro = new ProductEnum();
     //   pro.setId(roductEnum.getId());
        pro.setName(roductEnum.getName());
        pro.setRefBussiness(roductEnum.getRefBussiness());
        pro.setDesc(roductEnum.getDesc());
        pro.setCode(roductEnum.getCode());
        pro.setCreateBy(roductEnum.getCreateBy());
        pro.setCreateTime(roductEnum.getCreateTime());
        Boolean flag = platformProductEnumService.save(pro);
        if(flag){
            return  R.ok("保存成功");
        }
        return R.fail("保存失败");
    }

    @ResponseBody
    @PutMapping("/updatePro")
    @ApiOperation(value = "修改产品枚举列表")
    public R<String> updatePro(ProductEnum roductEnum){
        if(roductEnum.getId().equals("")){
            return  null;
        }else{
            ProductEnum pro = new ProductEnum();
            pro.setId(roductEnum.getId());
            pro.setName(roductEnum.getName());
            pro.setRefBussiness(roductEnum.getRefBussiness());
            pro.setDesc(roductEnum.getDesc());
            pro.setCode(roductEnum.getCode());
            pro.setCreateBy(roductEnum.getCreateBy());
            pro.setCreateTime(roductEnum.getCreateTime());
            Boolean flag = platformProductEnumService.updateById(pro);
            if(flag){
                return R.ok("修改成功");
            }else{
                return R.fail("修改失败");
            }
        }

    }

    @ResponseBody
    @DeleteMapping("/delPro")
    @ApiOperation(value = "删除产品枚举列表")
    public R<String> deleteProduct(ProductEnum productEnum){
        if(productEnum.getId().equals("")) {
            return null;
        }
       Boolean flag =  platformProductEnumService.removeById(productEnum);
        if(flag){
           return R.ok("删除成功");
        }else{
           return R.fail("删除失败");
        }
    }
}

